import axios from "axios";

const request = axios.create({
    baseURL: 'http://8.137.157.16:9002',
    timeout: 10000
});

// 添加请求拦截器 ---接口发送给后端的一瞬间的处理
request.interceptors.request.use(function (config) {
    // 在发送请求之前可以添加一些通用的headers或者token等信息
    // 目前代码中没有特别需要处理的，所以保持不变
    return config;
}, function (error) {
    // 对请求错误做些什么
    console.error('请求错误:', error);
    return Promise.reject(error);
});

// 添加响应拦截器-拿到后端的返回数据-可以将数据处理后再返回页面
request.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 直接返回response.data，这里没有不必要的计算
    return response.data;
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    let errorMessage = '请求失败';
    if (error.response) {
        // 请求已发出，但服务器响应的状态码不在2xx范围内
        errorMessage = `请求错误, 状态码: ${error.response.status}`;
        console.error('响应错误:', errorMessage, error.response.data);
    } else if (error.request) {
        // 请求已发出，但没有收到响应
        errorMessage = '请求超时或无响应';
        console.error(errorMessage, error.request);
    } else {
        // 请求配置中发生了一些问题，例如请求被取消
        errorMessage = '请求配置错误';
        console.error(errorMessage, error.message);
    }
    return Promise.reject(errorMessage);
});

export default request;
